package com.hhss.qishi.service;

import com.hhss.qishi.entity.common.BasePojo;

import java.io.Serializable;
import java.util.List;

/**
 * 公共server方法
 * @author Administrator
 *
 */
public interface CommonService<T extends BasePojo, PK extends Serializable> {
	
	T getById(PK Id);
 
	T getByParam(T pojo);
	
	/**
	 * 根据实体属性获取实例，单个
	 * @param pojo
	 * @return
	 */
	T selectByEntity(T pojo);
	
	/**
	 * 获取所有，无论status
	 * @return
	 */
	List<T> selectAllByEntity(T pojo);
	
	/**
	 * 永久删除
	 * @param Id
	 * @return
	 */
    int deleteById(PK Id);
 
    /**
     * 数据库表字段status置为0
     * @param Id
     * @return
     */
    int invalidById(PK Id);

	/**
	 * 永久删除，根据实体，条件为“=”
	 * @param pojo
	 * @return
	 */
	int deleteByEntity(T pojo);

    int add(T pojo);
 
    int updateById(T pojo);
 
    /**
     * 根据主键@Id删除实体
     * @param ids
     * @return
     */
    int deleteByIds(String ids);
    
    /**
     * 根据主键@Id获取实体
     * @param ids
     * @return
     */
    List<T> selectByIds(String ids);
}